/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};
  //文件存放路径和文件白名单
  const path = require('path')
  config.uploadDir = 'app/public/img';
  config.multipart = {
    mode: 'file',
    fileSize: 1048576000,
    whitelist: ['.txt', '.png', '.jpg', '.xlsx'],
  };
  // 文件静态路径
  config.static = {
    prefix: '/app/public', //访问前缀
    dir: path.join(appInfo.baseDir, 'app/public'),
    dynamic: true,
    preload: false,
    maxAge: 31536000,
    buffer: true,
  };

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1679378348167_8616';

  // add your middleware config here
  config.middleware = [];

  // add your user config here
  const userConfig = {
    // myAppName: 'egg',
    mysql: {
      client: {
        // host
        // host: '43.142.185.98',
        host: '127.0.0.1',
        // 端口号
        port: '3306',
        // 用户名
        user: 'root',
        // 密码
        password: '123456',
        // 数据库名
        database: 'appointment',
      },
      //  mysql对象挂在到app对象上
      app: true,
      agent: false,
    },
    //  关闭csrf漏洞检测
    security: {
      csrf: {
        enable: false
      }

    },
    jwt: {
      // 秘钥
      secret: "liaoliulongisme"
    },
    swaggerdoc: {
      dirScanner: "./app/controller", // 配置⾃动扫描的控制器路径
      apiInfo: {
        title: "基于微信小程序的实验室预约管理系统", // 接⼝⽂档标题
        description: "最强程序员的毕业设计", // 接⼝⽂档描述
        version: "1.0.0", // 接⼝⽂档版本
      },
      schemes: ["http", "https"], // 配置⽀持的协议
      consumes: ["application/json", "application/x-www-form-urlencoded"], // 指定处理请求的提交内容类型(Content-Type)
      produces: ["application/json"], // 指定返回的内容类型
      securityDefinitions: { //安全认证
        apikey: {
          description: 'Authorization format: Bearer {token}', //描述
          type: 'apiKey', //类型
          name: 'Authorization', // 名称
          in: 'header' //存在位置
        }
      },
      enableSecurity: true, // 是否启⽤授权（默认false不启⽤）
      // enableValidate: true, // 是否启动参数校验（默认true开启）
      routerMap: false, // 是否⾃动⽣成路由（默认true开启）
      enable: true,
    },
    cors: {
      origin: '*', // 允许哪个地址跨域请求  用 * 是允许所有跨域
      allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH', // 允许哪些方法跨域请求
      credentials: true, // 允许前端携带cookie
    }


  };

  return {
    ...config,
    ...userConfig,
  };
};
